Skip to content

feat(shared): add Hermes as a built-in terminal agent - #6766

Merged
Kitenite merged 2 commits into
mainfrom
feat/agent-hermes
Aug 24, 2026
Merged

Kitenite merged 2 commits into
mainfrom
feat/agent-hermes

Conversation

@Kitenite

@Kitenite Kitenite commented Aug 22, 2026 •

Copy link
Copy Markdown
Member

What

Adds Hermes Agent (Nous Research) as a built-in terminal agent. This builds on @hackice20's #5802, which added the manifest entry; this PR carries that forward onto the current manifest shape and adds the icon and wiring every other builtin has. Thank you @hackice20 for kicking this off; the commit carries your Co-authored-by.

  • packages/shared/src/builtin-terminal-agents.ts: hermes entry
  • packages/ui/src/assets/icons/preset-icons/hermes.svg + hermes-white.svg, registered in index.ts (a small caduceus mark; Hermes has no vector logo upstream, its favicon is the ⚕ glyph and the README banner is pixel art, so this is a simple monochrome stand-in that can be swapped if Nous publishes one)
  • README "Supported Agents" row, apps/docs/content/docs/agent-integration.mdx bullet, UniversalCompatibilityDemo entry + apps/marketing/public/app-icons/hermes.svg
  • Registration test in agent-command.test.ts (prompt shape, preset args, resume args)

Manifest

Field Value Verified against
command hermes chat --yolo CLI reference: --yolo is both a global and a hermes chat option
promptCommand hermes chat --yolo -q -q, --query is the only way to pass a prompt; hermes chat has no positional (checked hermes_cli/_parser.py)
promptCommandSuffix ; hermes chat --yolo -c -c, --continue resumes the most recent session, so a prompt launch runs the query and then lands in the interactive chat on that session, same shape as kimi
resumeCommand hermes chat --yolo -r (+ session id) -r, --resume <SESSION_ID>
nonInteractiveCommand hermes chat -q one-shot without --yolo, like claude -p

Differences from #5802: the base command is hermes chat --yolo rather than hermes --yolo (the reference documents chat as the subcommand; bare hermes also defaults to chat per main.py, so both work, but chat is the documented form), and prompt launches continue into the TUI instead of exiting after the one-shot answer. Not added to the default terminal presets, matching droid/pi/polygraph; happy to flip includeInDefaultTerminalPresets.

Live-checked against an installed Hermes v0.20.5 on macOS (2026-08-23): hermes chat -h documents exactly the flags above (-q/--query, -r SESSION_ID, -c/--continue, --yolo), and hermes chat --yolo boots to the REPL (a fresh install stops at "no model configured - run /model", so a full prompt round-trip needs a provider configured; the launch shape itself is verified).

One thing I could not verify without a configured Hermes install: that a -q run is saved as a session so the -c suffix picks it up (the source points that way: hermes_cli/oneshot.py describes the separate stateless -z mode as bypassing cli.py with "no session_id line" - implying a normal chat -q run does record a session and print its id). If it does not, dropping promptCommandSuffix leaves the one-shot behaviour #5802 had.

Hermes runs as a plain terminal agent, same shape as Pi / Cursor Agent, so no packages/agent-setup target or wrapper is needed.

Testing

  • bun run typecheck clean
  • bun run lint clean
  • bun test packages/shared 778 pass

Based on #5802 (left open; the author can close it once this lands).

https://claude.ai/code/session_01DuAhw6Ao5Cru3acdkrzx9f


Summary by cubic

Adds Hermes as a built-in terminal agent for consistent CLI handling, icons, and docs. Previously unavailable; now prompt launches run a -q one-shot and auto-continue into the interactive chat; resume uses -r; non-interactive uses hermes chat -q.

  • Registers hermes in packages/shared/src/builtin-terminal-agents.ts with base hermes chat --yolo, prompt hermes chat --yolo -q, prompt suffix ; hermes chat --yolo -c, resume hermes chat --yolo -r, and non-interactive hermes chat -q.
  • Adds light/dark icons in packages/ui/src/assets/icons/preset-icons/*, wires them in packages/ui/src/assets/icons/preset-icons/index.ts, exposes Hermes in the desktop Agent Icon Picker and settings search (keywords include “hermes” and “nous”).
  • Updates docs and marketing: README supported-agents row, apps/docs agent-integration and terminal-presets entries, apps/marketing/public/app-icons/hermes.svg, and UniversalCompatibilityDemo.
  • Tests in packages/shared/src/agent-command.test.ts cover registration, prompt continuation shape, and derived preset args.
  • Not added to the default terminal preset bar; no packages/agent-setup target.

Written for commit b9c1e6d. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • New Features
    • Added Hermes as a supported coding and research agent.
    • Enabled interactive, prompt-based, resumable, and non-interactive Hermes workflows.
    • Added Hermes to agent selection, quick-add templates, and settings search.
    • Added light and dark Hermes icons across supported interfaces.
  • Documentation
    • Added Hermes to supported-agent and terminal-preset documentation.
  • Tests
    • Added coverage for Hermes command handling and workflow options.

@coderabbitai

coderabbitai Bot commented Aug 22, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

Next included review available in 10 minutes.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: bb286022-03cf-4285-b63f-d09cf835a5d5

📥 Commits

Reviewing files that changed from the base of the PR and between 0d6ca09 and b9c1e6d.

📒 Files selected for processing (9)
  • README.md
  • apps/desktop/src/renderer/routes/_authenticated/settings/agents/components/V2AgentsSettings/components/AgentIconPicker/agent-icon-options.ts
  • apps/desktop/src/renderer/routes/_authenticated/settings/utils/settings-search/settings-search.ts
  • apps/docs/content/docs/agent-integration.mdx
  • apps/docs/content/docs/terminal-presets.mdx
  • apps/marketing/src/app/components/FeaturesSection/components/UniversalCompatibilityDemo/UniversalCompatibilityDemo.tsx
  • packages/shared/src/agent-command.test.ts
  • packages/shared/src/builtin-terminal-agents.ts
  • packages/ui/src/assets/icons/preset-icons/index.ts

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 3012dc6b-f980-4f18-9ba8-d72fedd4b9eb

📥 Commits

Reviewing files that changed from the base of the PR and between 7277eb9 and 0d6ca09.

⛔ Files ignored due to path filters (3)
  • apps/marketing/public/app-icons/hermes.svg is excluded by !**/*.svg
  • packages/ui/src/assets/icons/preset-icons/hermes-white.svg is excluded by !**/*.svg
  • packages/ui/src/assets/icons/preset-icons/hermes.svg is excluded by !**/*.svg
📒 Files selected for processing (6)
  • README.md
  • apps/docs/content/docs/agent-integration.mdx
  • apps/marketing/src/app/components/FeaturesSection/components/UniversalCompatibilityDemo/UniversalCompatibilityDemo.tsx
  • packages/shared/src/agent-command.test.ts
  • packages/shared/src/builtin-terminal-agents.ts
  • packages/ui/src/assets/icons/preset-icons/index.ts
🚧 Files skipped from review as they are similar to previous changes (6)
  • packages/shared/src/agent-command.test.ts
  • apps/marketing/src/app/components/FeaturesSection/components/UniversalCompatibilityDemo/UniversalCompatibilityDemo.tsx
  • packages/shared/src/builtin-terminal-agents.ts
  • apps/docs/content/docs/agent-integration.mdx
  • packages/ui/src/assets/icons/preset-icons/index.ts
  • README.md

Included review availability: Your plan provides up to 10 included reviews per hour; 6 remain after this review.


📝 Walkthrough

Walkthrough

Hermes is added as a built-in terminal agent. Its commands and arguments are tested. Light and dark icons are registered. Hermes appears in compatibility displays and supported-agent documentation.

Changes

Hermes agent integration

Layer / File(s) Summary
Terminal agent registration and command validation
packages/shared/src/builtin-terminal-agents.ts, packages/shared/src/agent-command.test.ts
Hermes is registered with interactive, prompt, resume, and non-interactive commands. Tests verify command and argument derivation.
Hermes icon and compatibility display wiring
packages/ui/src/assets/icons/preset-icons/index.ts, apps/marketing/src/app/components/FeaturesSection/components/UniversalCompatibilityDemo/UniversalCompatibilityDemo.tsx
Light and dark Hermes icons are registered and exported. The compatibility demo displays Hermes.
Supported-agent documentation
README.md, apps/docs/content/docs/agent-integration.mdx
Hermes is listed as a supported coding agent.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 0d6ca

This change adds Hermes as a built-in terminal agent with registration, documentation, icons, and targeted tests; no actionable merge-blocking risk remains after normal checks and review.

Sequence Diagram(s)

sequenceDiagram
  participant BuiltinTerminalAgents
  participant AgentCommand
  participant HermesCLI
  BuiltinTerminalAgents->>AgentCommand: provide Hermes command configuration
  AgentCommand->>HermesCLI: invoke hermes chat --yolo -q
  AgentCommand->>HermesCLI: continue with hermes chat --yolo -c
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title uses conventional commit format and clearly identifies adding Hermes as a built-in terminal agent.
Description check ✅ Passed The description explains the changes, implementation details, verification steps, and known limitation; only the template checklist is omitted.
Docstring Coverage ✅ Passed Docstring check was indeterminate for this PR — some files could not be analyzed in time. Not blocking.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/agent-hermes

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Aug 22, 2026 •

Copy link
Copy Markdown
Contributor

🚀 Preview Deployment

🔗 Preview Links

Service Status Link
Neon Database (Neon) ✅ View Branch
Vercel API (Vercel) ✅ Open Preview
Vercel Web (Vercel) ✅ Open Preview
Vercel Marketing (Vercel) ✅ Open Preview
Vercel Admin (Vercel) ✅ Open Preview
Vercel Docs (Vercel) ✅ Open Preview

Preview updates automatically with new commits

@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

Adds Nous Research's Hermes Agent to BUILTIN_TERMINAL_AGENTS, with light/dark preset icons, README row, docs bullet, and marketing demo entry. Builds on #5802; hermes chat has no positional prompt, so prompt launches run -q and continue interactively with -c (kimi pattern); resume is -r <session>.

Co-authored-by: Yash <116657771+hackice20@users.noreply.github.com>

Claude-Session: https://claude.ai/code/session_01DuAhw6Ao5Cru3acdkrzx9f
@Kitenite
Kitenite merged commit 011724e into main Aug 24, 2026
19 checks passed
@Kitenite Kitenite mentioned this pull request Aug 24, 2026
3 tasks done

This branch was previously deployed

1 inactive deployment
preview — b9c1e6d0 Deployed Aug 24, 2026 by Kitenite via Deploy Admin #8383
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant